package com.ls.expand;

import com.ls.beans.Apple;

import org.springframework.beans.factory.FactoryBean;
import org.springframework.stereotype.Component;

/**
 * 为了区分 “FactoryBean” 和 “FactoryBean 创建的 bean 实例”，Spring 使用了 “&” 前缀。
 * 	 * 假设我们的 beanName 为 apple，则 getBean("apple") 获得的是 AppleFactoryBean 通过 getObject() 方法创建的 bean 实例
 * 	 * ；而 getBean("&apple") 获得的是 AppleFactoryBean 本身
 */

public class MyFactoryBean implements FactoryBean<Apple> {
	@Override
	public Apple getObject() {
		Apple apple = new Apple();
		apple.setName("苹果");
		return apple;
	}

	@Override
	public Class<?> getObjectType() {
		return Apple.class;
	}
}
